package com.dmzc.stage2.chapter28;

/***
 * EventBus的所有使用方法
 */
public interface Bus {
    /**
     * 将某个对象注册到Bus上
     * @param subcriber
     */
    void register(Object subcriber);

    /**
     * 将某个对象从bus上取消注册
     * @param subscriber
     */
    void unregister(Object subscriber);

    /**
     * 提交event到默认的topic
     * @param event
     */
    void post(Object event);

    /**
     * 提交event到指定的topic
     * @param event
     * @param topic
     */
    void post(Object event,String topic);

    /**
     * 关闭bus
     */
    void close();

    /**
     * 返回Bus名称
     * @return
     */
    String getBusName();
}
